package com.tbit.uqbike.webmanager.business.maintain_performance.object.dto.stat;

import lombok.Data;

import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.List;

/**
 * @author <a href="mailto:zheng.zebiao@tbit.com.cn">zb</a>
 * @since 2025/2/27
 */
@Data
public class MovePerformanceDetailReq {
    /**
     * 区域id
     */
    @NotNull(message = "区域id不能为空")
    private Integer accountId;
    /**
     * 车辆编码
     */
    private String userCode;

    /**
     * 运维人员id
     */
    private Integer accountUserId;

    /**
     * 开始时间
     */
    @NotNull(message = "开始时间不能为空")
    private LocalDate startTime;
    /**
     * 结束时间
     */
    @NotNull(message = "结束时间不能为空")
    private LocalDate endTime;
    /**
     * 车辆类型
     * 0-电单车 1-自行车
     */
    @NotNull(message = "车辆类型不能为空")
    private Integer machineType;
    /**
     * 挪车类型 1-站外 2-超区
     */
    private Integer moveType;
    /**
     * 运营分区id列表
     */
    private List<Integer> regionIds;
    /**
     * 页码
     */
    @NotNull(message = "页码不能为空")
    private Integer pageNo;
    /**
     * 每页数量
     */
    @NotNull(message = "每页数量不能为空")
    private Integer pageSize;

    /**
     * 导出可选字段列表，和返回值的字段名一致<br>
     * 传null默认导出所有字段，传空列表则不导出任何可选字段<br>
     * 可选值: moveType, firstOrderTime, orderCountAfter24Hour, beforeStatus, afterStatus, moveTraceDistance, performance, performanceDetail
     */
    private List<String> exportFields;
}
